home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / network / pktdrvtp.zip / TRAFMON.ZIP / TIMER.PAS < prev    next >
Pascal/Delphi Source File  |  1993-09-21  |  3KB  |  86 lines

  1.  
  2. {
  3. ╔════════════════════════════════╤═════════════════════════════════════╗
  4. ║ Filename       : TIMER.PAS     │  Program / Unit : [U]               ║
  5. ║ Description    :               └─────────────────────────────────────╢
  6. ║                                                                      ║
  7. ║                                                                      ║
  8. ╟──────────────────────────────────────────────────────────────────────╢
  9. ║ Compiler       : Turbo Pascal 6.0                                    ║
  10. ║ OS-Version     : MS-DOS 5.0                                          ║
  11. ║ Last edit      : 27-JAN-93                                           ║
  12. ╟──────────────────────────────────────────────────────────────────────╢
  13. ║ Author         : Oliver Rehmann                                      ║
  14. ║ Copyright      : Oliver Rehmann                                      ║
  15. ╚══════════════════════════════════════════════════════════════════════╝
  16. }
  17.  
  18. UNIT TIMER;
  19.  
  20. INTERFACE
  21.  
  22. USES DOS;
  23.  
  24. TYPE  _TIMER = OBJECT
  25.                  Starttime   : LONGINT;
  26.                  Duration    : LONGINT;
  27.                  _Timeout    : BOOLEAN;
  28.  
  29.                  CONSTRUCTOR Init(tDuration : LONGINT);
  30.                  PROCEDURE   Start;
  31.                  FUNCTION    Timeout : BOOLEAN;
  32.  
  33.                END;
  34.  
  35. FUNCTION  GetSystemTime : String;
  36.  
  37. IMPLEMENTATION
  38.  
  39. FUNCTION  GetSystemTime : String;
  40. VAR tmp     : String;
  41.     Time    : String;
  42.     TimeTmp : Byte;
  43.     Hour,Minute,Second,Sec100 : Word;
  44. BEGIN
  45.      GetTime(Hour,Minute,Second,Sec100);
  46.      Str(Hour:2,tmp);   If Pos(' ',tmp)<>0 then Time :=   '0'+tmp[2] else Time :=      tmp;
  47.      Time := Time+':';
  48.      Str(Minute:2,tmp); If Pos(' ',tmp)<>0 then Time := Time+'0'+tmp[2] else Time := Time+tmp;
  49.      Time := Time+':';
  50.      Str(Second:2,tmp); If Pos(' ',tmp)<>0 then Time := Time+'0'+tmp[2] else Time := Time+tmp;
  51.      TimeTmp := Hour; GetSystemTime := Time
  52. END;
  53.  
  54. FUNCTION GetSysTime : LONGINT;
  55. VAR Hour,Minute,Second,Sec100 : Word;
  56.     tSysTime                  : LONGINT;
  57. BEGIN
  58.   tSysTime   := 0;
  59.   GetTime(Hour,Minute,Second,Sec100);
  60.   tSysTime   := Hour*3600;                { each hour has 3600 seconds }
  61.   tSysTime   := tSysTime + (Minute*60);   { each min  has 60 seconds   }
  62.   tSysTime   := tSysTime + Second;
  63.   GetSysTime := tSysTime;
  64. END;
  65.  
  66. CONSTRUCTOR _TIMER.Init(tDuration : LONGINT);
  67. BEGIN
  68.   Duration := tDuration;
  69.   _Timeout := FALSE;
  70. END;
  71.  
  72. PROCEDURE _TIMER.Start;
  73. BEGIN
  74.   _Timeout := FALSE;
  75.   Starttime := GetSysTime;
  76. END;
  77.  
  78. FUNCTION _TIMER.Timeout : BOOLEAN;
  79. BEGIN
  80.   IF ((Starttime + Duration) < GetSysTime) THEN _Timeout := TRUE;
  81.   Timeout := _Timeout;
  82. END;
  83.  
  84. BEGIN
  85. END.
  86.